#include <iostream>
using namespace std;

int summ=0;
int b[20];

template <class T>
void subv(T a[],int m,int n,T c[]) {
    int j=0,sum=0;
	if(m>=0&&m<n)//m相当于一个标签
	{//将布尔型数组c中元素值初始化为0,1，此时0,1机会均等
		c[m]=1;
		subv(a,m+1,n,c);	
		c[m]=0;
		subv(a,m+1,n,c);
	}
	if(m==n) 
	{
        //int* b = new int(n);
		for(int i=0;i<n;i++)
		{
			if(c[i])//当c[i]=1时
			{
			    b[j]=a[i];//将值存到数组b中
				j++; 	
			}
		}
        for(int k=0;k<j;k++)
            sum+=b[k]*(k+1); //子集价值
		summ^=sum; //求异或和
	}
}

int main() {
    int n;
    cin >> n;
    int* a = new int(n);
    int* c = new int(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    subv(a,0,n,c);
    cout << summ;
    return 0;
}